<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript">
        (function (document, window) {
            /**
             * 这里想到一个问题：
             * 在init里的callback调用，为何不放在attachEvent里去做？
             * 这样还可以支持多个....
             *
             * 哦，原来是ie不支持一种合适的事件！这里就是用doScroll来模拟事件。
             *
             * 再看下一个问题：
             * 如果多个callback依次添加到这个ready里来，这里就需要做list来管理了！
             * 见V2处理方案！
             * @type {Boolean}
             */
            var isReady = false,
                    init = function (callback) {
                        // only fire once
                        if (!isReady) {
                            isReady = true;
                            callback();
                        }
                    };
            var ln = {
                ready:function (callback) {
                    (function () {
                        try {
                            // throws errors until after ondocumentready
                            document.documentElement.doScroll('left');
                        } catch (e) {
                            return setTimeout(arguments.callee, 50);
                        }
                        // no errors, fire
                        init(callback);
                    })();
                }
            };
            window.ln = ln;
        }(document, window));
        ln.ready(function(){
            console.log('doScroll Ready!!!');
        });

        window.onload=function(){
            console.log('window onload!')
        };
    </script>



</head>
<body>

<img src="http://www.baidu.com/img/baidu_sylogo1.gif" width="270" height="129">
<img src="http://www.planeart.cn/demo/imgZoom/_demo/b2.jpg" alt="">
<iframe src="http://www.baidu.com"></iframe>


</body>
</html>